﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Tst.Models
{
    public class CasoTesteRepository
    {

        private TstEntities context;


        public CasoTesteRepository()
        {
            this.context = new TstEntities();
        }

        ~CasoTesteRepository()
        {
            this.context.Dispose();
        }


        public void Save()
        {
            this.context.SaveChanges();
        }

        public IList<CasoTeste> GetAll()
        {
            return this.context.CasoTeste.ToList();
        }

        public CasoTeste GetById(int cd_caso_teste)
        {
            return this.context.CasoTeste.FirstOrDefault(c => c.cd_caso_teste == cd_caso_teste);
        }

        public CasoTeste GetByDescricao(string ds_descricao)
        {
            return this.context.CasoTeste.FirstOrDefault(c => c.ds_descricao == ds_descricao);

        }

        public CasoTeste Insert(CasoTeste casoTeste)
        {
            this.context.AddToCasoTeste(casoTeste);
            return casoTeste;
        }

        public void Update(CasoTeste casoTeste)
        {
            this.context.AttachUpdated(casoTeste);
        }

        public void Delete(int cd_caso_teste)
        {
            CasoTeste casoTeste = this.GetById(cd_caso_teste);

            if (casoTeste != null)
            {                
                casoTeste.PlanoTesteReference.Load();
                casoTeste.PlanoTeste = null;

                this.context.DeleteObject(casoTeste);
            }

        }


    }
}
